package com.ytclub.subject.infra.basic.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ytclub.subject.infra.basic.entity.SubjectLiked;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 点赞表 表数据库访问层
 *
 * @author HuangQi
 * @since 2024-04-24 07:10:54
 */
@Repository
public interface SubjectLikedDao extends BaseMapper<SubjectLiked> {

    /**
     * 根据题目id查看被多少用户点赞
     *
     * @param subjectId 查询条件
     * @return 查询结果
     */
    Integer queryCountBySubjectId(@Param("subjectId") String subjectId);


    /**
     * 批量插入或更新
     *
     * @param subjectLikedList 点赞信息
     */
    void batchInsertOrUpdate(@Param("entities") List<SubjectLiked> subjectLikedList);


    /**
     * 根据条件查询符合条件的条数
     *
     * @param subjectLiked 查询条件
     * @return 符合条件的条数
     */
    int countByCondition(SubjectLiked subjectLiked);


    /**
     * 分页查询
     *
     * @param subjectLiked 查询条件
     * @param start        起始位置
     * @param pageSize     每页条数
     * @return 查询结果
     */
    List<SubjectLiked> queryPage(@Param("entity") SubjectLiked subjectLiked,
                                 @Param("start") int start,
                                 @Param("pageSize") Integer pageSize);


    /**
     * 批量插入
     *
     * @param entities 实体
     * @return 影响行数
     */
    int insertBatch(@Param("entities") List<SubjectLiked> entities);
}

